package com.init.bootframe.system.dao;

import java.util.List;

import com.init.bootframe.system.vo.BaseDataVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 基础数据持久类
 * 
 * @author Administrator
 *
 */
@Repository
public interface IBaseDataDao {

	/**
	 * 分页查询基础数据信息
	 * 
	 * @param vaseDataVo
	 * @return List<BaseDataVo>
	 */
	public List<BaseDataVO> findBaseDataList(BaseDataVO vaseDataVo);

	/**
	 * 查询基础数据总数
	 * 
	 * @param vaseDataVo
	 * @return List<BaseDataVo>
	 */
	public int findBaseDataListCount(BaseDataVO vaseDataVo);

	/**
	 * 查询是否存在子节点数据
	 * 
	 * @param vaseDataVo
	 * @return List<BaseDataVo>
	 */
	public List<BaseDataVO> findExistsParentBaseData(BaseDataVO vaseDataVo);

	/**
	 * 添加基础数据
	 * 
	 * @param vaseDataVo
	 * @return int
	 */
	public int createBaseData(BaseDataVO vaseDataVo);

	/**
	 * 修改基础数据
	 * 
	 * @param vaseDataVo
	 * @return int
	 */
	public int updateBaseData(BaseDataVO vaseDataVo);

	/**
	 * 删除基础数据
	 * 
	 * @param baseId
	 * @return int
	 */
	public int deleteBaseData(BaseDataVO baseId);

	/**
	 * 根据基础Id查询基础数据
	 * 
	 * @param vaseDataVo
	 * @return BaseDataVo
	 */
	public BaseDataVO findBaseDataById(BaseDataVO vaseDataVo);

	/**
	 * 修改基础数据编码（当父配置编码修改了子项的编码都要修改）
	 * 
	 * @param oldCode(旧的编码),newCode(新的编码)
	 * @return
	 */
	public void updateBaseCode(@Param("oldCode") String oldCode, @Param("newCode") String newCode);
	/**
	 * 修改基础数据状态（当父配置状态修改了子项的状态都要修改）
	 * 	oldCode(旧的编码),status(新的状态)
	 * @param vaseDataVo
	 * @return
	 */
	public void updateStatus(BaseDataVO vaseDataVo);
	
	/**
	 * 修改基础数据状态（当父配置状态修改了子项的状态都要修改）
	 *  oldCode(旧的编码),status(新的状态)
	 * @param
	 * @return
	 */
	public void updateStatusAll(BaseDataVO vaseDataVo);

	/**
	 * 根据code查询基础数据信息
	 * 
	 * @param vaseDataVo
	 * @return List<BaseDataVo>
	 */
	public List<BaseDataVO> findBaseDataListByCode(BaseDataVO vaseDataVo);
	
	/**
	 * 查询父节点上级数据
	 * @author ZhangGuoWei
	 * 2019年1月8日
	 * @param baseId
	 * @return
	 */
	public String findBaseDataSuperior(String baseId);
	/**
	 * 查询父节点下级数据
	 * @author ZhangGuoWei
	 * 2019年1月8日
	 * @param baseId
	 * @return
	 */
	public String findBaseDataLower(String baseId);
}
